首先我們要先說明 tsv 檔案,我們可找到 flashlayout 的資料夾。這裡面會放著 tsv 檔案,這個檔案用來表示我們的磁碟要怎麼分割。命名會用 emmc , sdcoard , nor-sdcard 的方式命名,依照我們要寫入的不同設備來區分的。
tsv 檔案內容如下 :
這邊提供幾個指令可以用來燒錄後確認檔案是否正確
## cmd
> mmc list
> mmc info
> mmc dev 1 # 切換 mmc 設備
> mmc part # 列出該 mmc 的分區
## linux 底下可以用下面指令查詢相關資料
> ls /dev/mmcblk1*
> fdisk -l /dev/mmcblk1
> fdisk /dev/mmcblk1
0x01 | 保留 | TF-A啟動檔案 | TF-A透過 USB 串列燒入的檔案 |
---|---|---|---|
0x02 | 保留 | fip-ddr.bin | FIP 啟動鏡像文件,包含初始化DDR所需的TF-A BL2參數 |
0x03 | 保留 | fip.bin | 要啟動的FIP 映像文件,包括U-Boot |
0x04 | tf-a-.stm32 | TF-A 啟動用的導引程式 copy1 | |
0x05 | tf-a-.stm32 | TF-A 啟動用的導引程式 copy2 | |
0x06 | 中繼資料 (複製第一份) | TF-A 所需檔案 | |
0x07 | 中繼資料 (複製第二份) | TF-A 所需檔案 copy 防止系統出錯 | |
0x08 | FIP A (SSBL-A) 備援機制 | optee 安全啟動 (包含uboot) | |
0x09 | FIP A (SSBL-B) 備援機制 | optee 安全啟動 (包含uboot) |
• ROM代碼->FSBL(TF-A)->SSBL(uboot)->Linux。
使用官方的 STM32Programmer 燒錄到 EMMC 當中,步驟如下
接著等跑完進度條就結束拉!之後斷電撥到emmc啟動方式,就可以使用 emmc 啟動拉!
懶得安裝軟體哈哈哈,但位置應該是差不多的
SD卡燒錄方式其實官方有提供腳本,我們先進入到 build的目錄底下
cd <your projects>/build
在 build/script 底下有個產生 SD image 的腳本。
# 用 st 給的 script 產生腳本 , 假如產生的時候報檔案過大 , 打開 sdcard 的 tsv 將 user 那一行整個刪掉
SDCARD_SIZE=1024 ./scripts/create_sdcard_from_flashlayout.sh flashlayout_core-image-minimal/optee/FlashLayout_sdcard_stm32mp157f-ev1-rt-optee.tsv
# 燒錄前先取消掛載
sudo umount sdb*
#燒錄
sudo dd if=./FlashLayout_sdcard_stm32mp157f-optee.raw of=/dev/sdb bs=8M conv=fdatasync status=progress
# 清空 sd 卡分區 (可不操作 直接寫入也可以)
sudo fdisk /dev/sdb
# 進入互動式介面後
# 輸入 d 可刪除分區
# w 保存結果寫入